package actionform;

import java.util.Set;

import javax.servlet.http.HttpServletRequest;

import metier.Categorie;
import metier.Offre;
import metier.Personne;
 
import metier.Region;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

import dao.DAOCategorieHib;
import dao.DAOPersonneHib;
import dao.DAORegionHib;

public class BeanOffre extends ActionForm{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 
	 */
	
	private	Offre offre = null;
	private Personne personne = null;
	//private Categorie categorie = null;
	private Region region = null;

	DAORegionHib daoregion = new DAORegionHib();
	DAOCategorieHib daocategorie = new DAOCategorieHib();
	DAOPersonneHib daopersonne = new DAOPersonneHib();
	

	public  BeanOffre()
	{
		offre = new Offre();
		personne = new Personne();
	//	categorie = new Categorie();
		region = new Region();
	}

	public int getId_region()
	{
		return region.getId_region();
	}
	
	public int getId_personne()
	{
		return personne.getId_personne();
	}
	/*
	public int getId_categorie()
	{
		return categorie.getId_categorie();
	}
	
	public void setId_categorie(Categorie categorie)
	{
		offre.setCategorie(categorie)
	}
	*/
	
	public void setId_personne(Personne personne)
	{
		offre.setPersonne(personne);
	}
	
	public void setId_personne(int id_personne) throws Exception
	{
		offre.setPersonne(daopersonne.get(id_personne));
	}
	
	public void setId_region(Region region)
	{
		offre.setRegion(region);
	}
	
	public void setId_region(int id_region) throws Exception
	{
		
		offre.setRegion(daoregion.get(id_region));
	}
	
	public Personne getPersonne() {
		return personne;
	}

	public void setPersonne(Personne personne) {
		this.personne = personne;
	}

	public static long getSerialversionuid() {
		return serialVersionUID;
	}

	public void setOffre(Offre offre) {
		this.offre = offre;
	}

	/*public void setCategorie(Categorie categorie) {
		this.categorie = categorie;
	}
*/
	public int getId_offre()
	{
		return offre.getId_offre();
	}
	
	public String getTitre_offre()
	{
		return offre.getTitre();
	}
	
	public String getDescription_offre()
	{
		return offre.getDescription();
	}
	
	public void setId_offre(int id_offre)
	{
		offre.setId_offre(id_offre);
	}
	

	
	public Region getRegion()
	{
		return offre.getRegion();
	}
	
	public void setRegion(Region region)
	{
		offre.setRegion(region);
	}
	
	public Set<Categorie> getCategorie()
	{
		return offre.getCategorie();
	}
	
	public void setCategorie(Set<Categorie> categorie) {
		offre.setCategorie(categorie) ;
	}
	
	public String getTitre()
	{
		return offre.getTitre();
	}
	
	public void setTitre(String titre)
	{
		offre.setTitre(titre);
	}
	
	public String getDescription()
	{
		return offre.getDescription();
	}
	
	public void setDescription(String description)
	{
		offre.setDescription(description);
	}
	
	public boolean getTelephone()
	{
		return offre.getAffiche_tel();
	}
	
	public void setTelephone(boolean telephone)
	{
		offre.setAffiche_tel(telephone);
	}
	
	public double getPrix()
	{
		return offre.getPrix();
	}
	
	public void setPrix(double prix)
	{
		offre.setPrix(prix);
	}
	
	
	
	
	
	
	
	
	

	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		
		ActionErrors erreurs = new ActionErrors();

		//pas besoins de tester le telephone
		if ((this.getTitre() == null) || (this.getTitre().trim().equals("")))
			erreurs.add("Titre requis", new ActionMessage("beanOffre.erreur.titre.requis"));
		else if((this.getDescription()==null) || (this.getDescription().trim().equals("")))
			erreurs.add("Description requis",new ActionMessage("beanOffre.erreur.description.requis"));
		 
		//Rajouter Region categ image prix ?
		
		
		return erreurs;
	}






	public Offre getOffre() {
	 
		return offre;
	}

	


}
